package com.situ.mall.mapper;

import com.situ.mall.pojo.entity.Product;
import com.situ.mall.pojo.query.ProductQuery;
import com.situ.mall.pojo.vo.ProductSalesVO;
import com.situ.mall.pojo.vo.ProductVO;

import java.util.List;

public interface ProductMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Product record);

    int insertSelective(Product record);

    Product selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Product record);

    int updateByPrimaryKeyWithBLOBs(Product record);

    int updateByPrimaryKey(Product record);

    List<ProductVO> list(ProductQuery productQuery);

    void updateStatus(Integer id, Integer status);

    void deleteAll(Integer[] ids);

    ProductVO selectById(Integer id);

    List<ProductVO> listPortal(ProductQuery productQuery);

    List<Product> ProductByPatientId(Integer parentId);

    void reduceStock(Integer productId, Integer quantity);

    List<Product> selectList();

    Integer countProductByCategoryId(Integer categoryId);

    void onAll(Integer[] ids);

    void offAll(Integer[] ids);

    void updateSales(Integer productId, Integer quantity);

    List<ProductSalesVO> productSales();

    Integer totalCost();

    Product selectProductById(Integer key);
}